﻿Imports System.Data
Imports VSModel
Imports Cls_Common
Imports SecurityService
Partial Class Control_Scholarship_ContentEditor
    Inherits System.Web.UI.UserControl
    Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
#Region "Sub and Function "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Dim script As ScriptManager = ScriptManager.GetCurrent(Me.Page)
            If Not script Is Nothing AndAlso script.IsInAsyncPostBack Then
                ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "jqueryEnable", "ajaxJquery()", True)
            Else
                Me.Page.ClientScript.RegisterStartupScript(Me.Page.GetType(), "jqueryEnable", String.Concat("Sys.Application.add_load(function(){", "ajaxJquery()", "});"), True)
            End If

            Dim iStatusId As Integer = 1
            If Not Request.QueryString("Id") Is Nothing Then
                hidID.Value = Request.QueryString("Id")
                If hidID.Value <> "" Then
                    Dim ArrId As String() = hidID.Value.Split(",")
                    If (ArrId.Length <= 1) Then
                        LoadListStatus(hidID.Value)
                    End If
                End If
                btnDelete.Attributes.Add("onclick", "return ComfirmDialog('Bạn có chắc chắn muốn xóa không?',0,'" + btnDelete.ClientID + "','" + hidID.Value.ToString + "',1);")

                'Permission
                btnDelete.Visible = HasPermission(Function_Name.Feedback, Session("RoleID"), iStatusId, Audit_Type.Delete)
            End If

            'active tab tuong ung voi Page
            'InVisble button ko can thiet


            If Request.PhysicalPath.Contains("List.aspx") Then
                lbtList.CssClass = "current_manage"
                lbtList.Text = "<span class=""current_manage"">Quản lý</span>"
                lbtEdit.Visible = False
                lbtView.Visible = False
                btnDelete.Visible = False
                'lbtAdd.Visible = HasPermission(Function_Name.Scholarship, Session("RoleID"), 0, Audit_Type.Create)
                lblStatus.Visible = False
                cboAction.Visible = False

                'ElseIf Request.PhysicalPath.Contains("Create.aspx") Then
                '    lbtAdd.CssClass = "current_manage"
                '    lbtAdd.Text = "<span class=""current_manage"">Thêm mới</span>"
                '    lbtEdit.Visible = False
                '    lbtView.Visible = False
                '    btnDelete.Visible = False
                '    lbtAdd.Visible = HasPermission(Function_Name.Scholarship, Session("RoleID"), 0, Audit_Type.Create)
                '    lblStatus.Visible = False
                '    cboAction.Visible = False

                'Permission
                'setPermission(iStatusId)

            ElseIf Request.PhysicalPath.Contains("Detail.aspx") Then
                lbtView.CssClass = "current_manage"
                lbtView.Text = "<span class=""current_manage"">Xem</span>"
                'Permission
                setPermission(iStatusId)
                'lbtView.Visible = HasPermission(Function_Name.Contest, Session("RoleID"), iStatusId, Audit_Type.ViewContent)
                'lbtEdit.Visible = HasPermission(Function_Name.Contest, Session("RoleID"), iStatusId, Audit_Type.Edit)
                'lbtAdd.Visible = HasPermission(Function_Name.Contest, Session("RoleID"), iStatusId, Audit_Type.Create)

            ElseIf Request.PhysicalPath.Contains("Edit.aspx") Then
                lbtEdit.CssClass = "current_manage"
                lbtEdit.Text = "<span class=""current_manage"">Sửa</span>"
                'Permission
                setPermission(iStatusId)
            ElseIf Request.PhysicalPath.Contains("Action.aspx") Then
                'Permission
                setPermission(iStatusId)
            End If

        End If
    End Sub
    Protected Sub setPermission(ByVal iStatusId As Integer)
        'lbtAdd.Visible = HasPermission(Function_Name.Scholarship, Session("RoleID"), iStatusId, Audit_Type.Create)
        lbtView.Visible = HasPermission(Function_Name.Feedback, Session("RoleID"), iStatusId, Audit_Type.ViewContent)
        lbtEdit.Visible = HasPermission(Function_Name.Feedback, Session("RoleID"), iStatusId, Audit_Type.Edit)
        btnDelete.Visible = HasPermission(Function_Name.Feedback, Session("RoleID"), iStatusId, Audit_Type.Delete)
        'kiem tra status va quyen tuong ung
        ' tabs_state.Visible = HasPermission(Function_Name.Contest, Session("RoleID"), iStatusId, Audit_Type.Submit)

    End Sub
    Protected Sub cboAction_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboAction.SelectedIndexChanged
        'Nếu trạng thái đang chọn khác với trạng thái ban đầu thì mới đi chuyển trạng thái
        If (cboAction.SelectedValue <> cboAction.Items(0).Value) Then
            Response.Redirect("Action.aspx?Id=" & hidID.Value & "&CStatusId=" & cboAction.Items(0).Value & "&NStatusId=" & cboAction.SelectedValue)
        End If
    End Sub
    'Load list action status of current status
    Sub LoadListStatus(ByVal iContentId As Integer)
        Using Data As New VSEntities
            'Get Current StatusId of object
            Dim cst = (From q In Data.Feedbacks Where q.ID = iContentId Select q).SingleOrDefault
            Dim iCurrentStatusId As Byte = cst.StatusId
            hidSatus.Value = cst.StatusId
            hidID.Value = cst.Id

            'Load action tuong ung voi current statusid
            Dim st = (From q In Data.StatusActions Where q.CurrentStatusId = iCurrentStatusId Select q Order By
                    q.NextStatusId).ToList()
            For Each i In st
                If HasPermission(Function_Name.Feedback, Session("RoleID"), i.CurrentStatusId, i.Audit) Then
                    Dim _item As New ListItem(i.Title, i.NextStatusId)
                    cboAction.Items.Insert(0, _item)
                End If
            Next
            Dim s = (From p In Data.Status Where p.StatusId = cst.StatusId Select p).FirstOrDefault
            Dim iTem As New ListItem(s.Title, iCurrentStatusId)
            cboAction.Items.Insert(0, iTem)
        End Using
    End Sub
    Protected Sub lbtList_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtList.Click
        Response.Redirect("List.aspx")
    End Sub
    'Protected Sub lbtAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtAdd.Click
    '    Response.Redirect("Create.aspx")
    'End Sub
    Protected Sub lbtEdit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtEdit.Click
        Response.Redirect("Edit.aspx?Id=" & hidID.Value & "")
    End Sub
    Protected Sub lbtView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbtView.Click
        Response.Redirect("Detail.aspx?Id=" & hidID.Value & "")
    End Sub

    Protected Sub lnkbtnDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDelete.Click
        Dim intId As Integer
        Dim strLogName As String = ""
        Dim data As New VSEntities
        intId = hidID.Value
        Dim q = (From p In data.Feedbacks Where p.ID = intId Select p).FirstOrDefault
        strLogName = q.FullName.ToString
        Try
            'Delete Feedback
            data.Feedbacks.DeleteObject(q)
            data.SaveChanges()
            'Insert_App_Log("Delete  Scholarship: Id=" & intId.ToString & ", ScholarshipName=" & strLogName, Function_Name.Scholarship, Audit_Type.Delete, Request.ServerVariables("REMOTE_ADDR"), Session("UserName"))
            Excute_Javascript("Alertbox('Xóa dữ liệu thành công.');window.location ='../../Page/Feedback/List.aspx';", Me.Page, True)
        Catch ex As Exception
            log.Error("Error error " & AddTabSpace(1) & Session("Username") & AddTabSpace(1) & "IP:" & GetIPAddress(), ex)
            Excute_Javascript("Alertbox('Xóa feedback thất bại.');", Me.Page, True)
        End Try
    End Sub



#End Region



End Class
